@@ -11,7 +11,8 @@ from TimeConvert import TimeConvert as tc  | 
            ||
| 11 | 11 | 
                 | 
            
| 12 | 12 | 
                from utils.error.errno_utils import GroupUserStatusCode  | 
            
| 13 | 13 | 
                from utils.error.response_utils import response  | 
            
| 14 | 
                -from utils.redis.rkeys import TOUR_GUIDE_GROUP_CUR_SESSION, TOUR_GUIDE_GROUP_GEO_INFO, TOUR_GUIDE_GROUP_USER_GEO_LIST  | 
            |
| 14 | 
                +from utils.redis.rkeys import (TOUR_GUIDE_GROUP_CUR_SESSION, TOUR_GUIDE_GROUP_GEO_INFO, TOUR_GUIDE_GROUP_GEO_SUBMIT_DT,  | 
            |
| 15 | 
                + TOUR_GUIDE_GROUP_USER_GEO_LIST)  | 
            |
| 15 | 16 | 
                from utils.redis.rtouruser import get_tour_user_belong_group  | 
            
| 16 | 17 | 
                 | 
            
| 17 | 18 | 
                 | 
            
                @@ -30,6 +31,7 @@ def geo_submit_api(request):  | 
            ||
| 30 | 31 | 
                return response(GroupUserStatusCode.USER_HAS_NOT_JOIN_GROUP)  | 
            
| 31 | 32 | 
                 | 
            
| 32 | 33 | 
                r.geoadd(TOUR_GUIDE_GROUP_GEO_INFO % group_id, longitude, latitude, user_id)  | 
            
| 34 | 
                + r.hset(TOUR_GUIDE_GROUP_GEO_SUBMIT_DT % group_id, user_id, tc.utc_string(format='%Y-%m-%dT%H:%M:%SZ'))  | 
            |
| 33 | 35 | 
                 | 
            
| 34 | 36 | 
                session_id = r.get(TOUR_GUIDE_GROUP_CUR_SESSION % group_id)  | 
            
| 35 | 37 | 
                     r.rpush(TOUR_GUIDE_GROUP_USER_GEO_LIST % (group_id, session_id, user_id), json.dumps({
               | 
            
                @@ -16,7 +16,8 @@ from group.models import GroupInfo, GroupUserInfo  | 
            ||
| 16 | 16 | 
                from utils.error.errno_utils import GroupStatusCode, GroupUserStatusCode, TokenStatusCode, UserStatusCode  | 
            
| 17 | 17 | 
                from utils.error.response_utils import response  | 
            
| 18 | 18 | 
                from utils.redis.rgroup import get_group_info, get_group_users_info, set_group_info, set_group_users_info  | 
            
| 19 | 
                -from utils.redis.rkeys import TOUR_GUIDE_GROUP_CUR_GATHER_INFO, TOUR_GUIDE_GROUP_CUR_SESSION  | 
            |
| 19 | 
                +from utils.redis.rkeys import (TOUR_GUIDE_GROUP_CUR_GATHER_INFO, TOUR_GUIDE_GROUP_CUR_SESSION,  | 
            |
| 20 | 
                + TOUR_GUIDE_GROUP_GEO_SUBMIT_DT)  | 
            |
| 20 | 21 | 
                from utils.redis.rtourguide import get_tour_guide_own_group, set_tour_guide_own_group  | 
            
| 21 | 22 | 
                from utils.redis.rtouruser import get_tour_user_belong_group  | 
            
| 22 | 23 | 
                from utils.storage_utils import file_save  | 
            
                @@ -101,15 +102,26 @@ def tg_group_create_api(request):  | 
            ||
| 101 | 102 | 
                })  | 
            
| 102 | 103 | 
                 | 
            
| 103 | 104 | 
                 | 
            
| 105 | 
                +def set_geo_submit_flag(uinfo, geo_dt):  | 
            |
| 106 | 
                + uinfo['geo_submited'] = False  | 
            |
| 107 | 
                + if geo_dt:  | 
            |
| 108 | 
                + pass  | 
            |
| 109 | 
                + return uinfo  | 
            |
| 110 | 
                +  | 
            |
| 111 | 
                +  | 
            |
| 104 | 112 | 
                @logit  | 
            
| 105 | 113 | 
                def tg_group_detail_api(request):  | 
            
| 106 | 114 | 
                """ 旅行团详情 """  | 
            
| 107 | 115 | 
                     group_id = request.POST.get('group_id', '')
               | 
            
| 108 | 116 | 
                     user_id = request.POST.get('user_id', '')
               | 
            
| 109 | 117 | 
                 | 
            
| 118 | 
                + geo_dts = r.hgetall(TOUR_GUIDE_GROUP_GEO_SUBMIT_DT % group_id)  | 
            |
| 119 | 
                +  | 
            |
| 110 | 120 | 
                group_users_info = get_group_users_info(group_id, user_id)  | 
            
| 111 | 121 | 
                # Remove tourguide  | 
            
| 112 | 
                - group_passed_users = [user for user in group_users_info['passed'] if not user['subadmin']]  | 
            |
| 122 | 
                + group_passed_users = [uinfo for uinfo in group_users_info['passed'] if not uinfo['subadmin']]  | 
            |
| 123 | 
                + # GEO Submited Flag  | 
            |
| 124 | 
                + group_passed_users = [set_geo_submit_flag(uinfo, geo_dts.get(uinfo['user_id'], '')) for uinfo in group_passed_users]  | 
            |
| 113 | 125 | 
                group_users_info['passed'] = group_passed_users  | 
            
| 114 | 126 | 
                # Update passed count  | 
            
| 115 | 127 | 
                group_users_info['passed_count'] = len(group_passed_users)  | 
            
                @@ -8,6 +8,7 @@ PROFILE_INFO = 'profile:info:%s' # STRING,用户信息,user_id  | 
            ||
| 8 | 8 | 
                 | 
            
| 9 | 9 | 
                # 导游相关  | 
            
| 10 | 10 | 
                TOUR_GUIDE_GROUP_GEO_INFO = 'tour:guide:group:geo:info:%s' # ZSET,旅游团地理位置信息,group_id  | 
            
| 11 | 
                +TOUR_GUIDE_GROUP_GEO_SUBMIT_DT = 'tour:guide:group:geo:submit:dt:%s' # ZSET,旅游团地理位置最后上传时间,group_id  | 
            |
| 11 | 12 | 
                TOUR_GUIDE_GROUP_CUR_SESSION = 'tour:guide:group:cur:session:%s' # STRING,旅游团当前Session,group_id,导游设置集合时间的时候更新  | 
            
| 12 | 13 | 
                TOUR_GUIDE_GROUP_CUR_GATHER_INFO = 'tour:guide:group:cur:gather:info:%s' # STRING,旅游团当前Session,group_id,导游设置集合时间的时候更新  | 
            
| 13 | 14 | 
                TOUR_GUIDE_GROUP_USER_GEO_LIST = 'tour:guide:group:user:geo:list:%s:%s:%s' # LIST,旅游团当前用户地理位置列表,group_id、session_id、user_id  |